home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 2002 November / SGI IRIX Installation Tools & Overlays 2002 November - Disc 4.iso / dist / motif21_dev.idb / usr / Motif-2.1 / include / Xm / Xm.h.z / Xm.h
C/C++ Source or Header  |  2002-10-15  |  64KB  |  2,064 lines

  1. /* 
  2.  *  @OSF_COPYRIGHT@
  3.  *  COPYRIGHT NOTICE
  4.  *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
  5.  *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
  6.  *  the full copyright text.
  7.  */ 
  8. /* $TOG: Xm.h /main/35 1998/05/22 16:29:59 rafi $
  9.  *
  10.  * (c) Copyright 1996 Digital Equipment Corporation.
  11.  * (c) Copyright 1987-1992,1996 Hewlett-Packard Company.
  12.  * (c) Copyright 1996 International Business Machines Corp.
  13.  * (c) Copyright 1996 Sun Microsystems, Inc.
  14.  * (c) Copyright 1996 Novell, Inc. 
  15.  * (c) Copyright 1996 FUJITSU LIMITED.
  16.  * (c) Copyright 1996 Hitachi.
  17.  */
  18.  
  19. #ifndef _Xm_h
  20. #define _Xm_h
  21.  
  22. #if    !defined(__STDC__) \
  23.     && !defined(__cplusplus) && !defined(c_plusplus) \
  24.     && !defined(FUNCPROTO) && !defined(XTFUNCPROTO) && !defined(XMFUNCPROTO)
  25. #define _NO_PROTO
  26. #endif /* __STDC__ */
  27.  
  28. #include <X11/Intrinsic.h>
  29. #include <X11/Shell.h>
  30. #include <X11/Xatom.h>
  31.  
  32. /*
  33.  * _SGIMOTIF is SGIs look and feel. Turning this off during compilation
  34.  *  of an application would be a bad idea, all the widget structure offsets
  35.  *  will be wrong compared to the shipped library---rmo
  36.  */
  37. #ifndef _NO_SGIMOTIF
  38. #undef _SGIMOTIF
  39. #define _SGIMOTIF TRUE
  40. #else
  41. #undef _SGIMOTIF
  42. #endif
  43.  
  44. /* _SGIBUGFIX is a wrapper around SGI bug fixes. This is also mainly used
  45.  * internal to the library --- rmo
  46.  */
  47. #ifndef _NO_SGIBUGFIX
  48. #undef _SGIBUGFIX
  49. #define _SGIBUGFIX TRUE
  50. #else
  51. #undef _SGIBUGFIX
  52. #endif
  53.  
  54. /* _SGIMOTIFAPI is used to wrap the extenstions to the Motif API that SGI have 
  55.  * made. This may be turned off during application compilation to ensure 
  56.  * that no SGI extensions have been used---rmo
  57.  */    
  58. #ifdef _SGIMOTIF
  59. #ifndef _NO_SGIMOTIFAPI
  60. #undef     _SGIMOTIFAPI
  61. #define _SGIMOTIFAPI TRUE
  62. #else
  63. #undef _SGIMOTIFAPI
  64. #endif
  65. #endif /* _SGIMOTIF */    
  66.     
  67. #if ! defined(_SGIMOTIF) || ( defined(_SGIMOTIF) && defined(_SGIMOTIF_PRINT) )
  68. #include <X11/extensions/Print.h>
  69. #endif
  70.  
  71. #include <Xm/XmStrDefs.h>
  72. #include <Xm/VirtKeys.h>
  73. #include <Xm/DragDrop.h>
  74. #include <Xm/Primitive.h>
  75. #include <Xm/Manager.h>
  76. #include <Xm/Gadget.h>
  77.  
  78. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  79. #include <Xm/SGIApi.h>
  80. #endif
  81.  
  82. #ifdef __cplusplus
  83. extern "C" {
  84. #endif
  85.  
  86. #define XmVERSION    2
  87. #define XmREVISION    1
  88. #define XmUPDATE_LEVEL    20
  89. #define XmVersion    (XmVERSION * 1000 + XmREVISION)
  90. #define XmVERSION_STRING "@(#)Motif Version 2.1.20"
  91.  
  92. externalref int xmUseVersion;
  93.  
  94.  
  95. /* define used to denote an unspecified pixmap  */
  96.  
  97. #define    XmUNSPECIFIED_PIXMAP        2
  98.  
  99. /* define for an unspecified position */
  100.  
  101. #define XmUNSPECIFIED_POSITION          -1
  102.  
  103. /*******************
  104.  *  
  105.  * Defines for resources to be defaulted by vendors.
  106.  * String are initialized in Xmos.c
  107.  *
  108.  ****************/
  109.  
  110. #define    XmSTRING_OS_CHARSET        XmSTRING_ISO8859_1
  111. #ifndef    XmFALLBACK_CHARSET
  112. #define    XmFALLBACK_CHARSET        XmSTRING_ISO8859_1
  113. #endif
  114.  
  115. #define XmDEFAULT_FONT                  _XmSDEFAULT_FONT
  116. #define XmDEFAULT_BACKGROUND            _XmSDEFAULT_BACKGROUND
  117. #define XmDEFAULT_DARK_THRESHOLD        20
  118. #define XmDEFAULT_LIGHT_THRESHOLD       93
  119. #define XmDEFAULT_FOREGROUND_THRESHOLD  70
  120.  
  121. externalref  char    _XmSDEFAULT_FONT[];            /* In Xmos.c */
  122. externalref  char    _XmSDEFAULT_BACKGROUND[];      /* In Xmos.c */
  123.  
  124. typedef unsigned char    XmDirection;
  125.  
  126. #define XmDIRECTION_IGNORED            0x30
  127.  
  128. #define XmRIGHT_TO_LEFT_MASK           0x01 /* 0x01 for bc */
  129. #define XmLEFT_TO_RIGHT_MASK           0x02
  130. #define XmHORIZONTAL_MASK              0x03
  131. #define XmTOP_TO_BOTTOM_MASK           0x04
  132. #define XmBOTTOM_TO_TOP_MASK           0x08
  133. #define XmVERTICAL_MASK                0x0c
  134. #define XmPRECEDENCE_HORIZ_MASK        0x40
  135. #define XmPRECEDENCE_VERT_MASK         0x80
  136. #define XmPRECEDENCE_MASK              0xc0
  137.  
  138. enum {
  139.   XmRIGHT_TO_LEFT_TOP_TO_BOTTOM = 
  140.       XmRIGHT_TO_LEFT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_HORIZ_MASK,
  141.   XmLEFT_TO_RIGHT_TOP_TO_BOTTOM = 
  142.       XmLEFT_TO_RIGHT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_HORIZ_MASK,
  143.   XmRIGHT_TO_LEFT_BOTTOM_TO_TOP = 
  144.       XmRIGHT_TO_LEFT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_HORIZ_MASK,
  145.   XmLEFT_TO_RIGHT_BOTTOM_TO_TOP = 
  146.       XmLEFT_TO_RIGHT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_HORIZ_MASK,
  147.   XmTOP_TO_BOTTOM_RIGHT_TO_LEFT = 
  148.       XmRIGHT_TO_LEFT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_VERT_MASK,
  149.   XmTOP_TO_BOTTOM_LEFT_TO_RIGHT = 
  150.       XmLEFT_TO_RIGHT_MASK | XmTOP_TO_BOTTOM_MASK | XmPRECEDENCE_VERT_MASK,
  151.   XmBOTTOM_TO_TOP_RIGHT_TO_LEFT = 
  152.       XmRIGHT_TO_LEFT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_VERT_MASK,
  153.   XmBOTTOM_TO_TOP_LEFT_TO_RIGHT = 
  154.       XmLEFT_TO_RIGHT_MASK | XmBOTTOM_TO_TOP_MASK | XmPRECEDENCE_VERT_MASK,
  155.   XmTOP_TO_BOTTOM = 
  156.       XmTOP_TO_BOTTOM_MASK | XmHORIZONTAL_MASK | XmPRECEDENCE_MASK,
  157.   XmBOTTOM_TO_TOP = 
  158.       XmBOTTOM_TO_TOP_MASK | XmHORIZONTAL_MASK | XmPRECEDENCE_MASK,
  159.   XmRIGHT_TO_LEFT = 
  160.       XmRIGHT_TO_LEFT_MASK | XmVERTICAL_MASK | XmPRECEDENCE_MASK,
  161.   XmLEFT_TO_RIGHT = 
  162.       XmLEFT_TO_RIGHT_MASK | XmVERTICAL_MASK | XmPRECEDENCE_MASK,
  163.   XmDEFAULT_DIRECTION = 0xff
  164.   };
  165.  
  166.  
  167. extern Boolean XmDirectionMatch(XmDirection d1, 
  168.                 XmDirection d2);
  169. extern Boolean XmDirectionMatchPartial(XmDirection d1, 
  170.                        XmDirection d2, 
  171.                        XmDirection dmask);
  172.  
  173. /****************
  174.  *
  175.  * XmString structure defines. These must be here (at the start of the file) 
  176.  * becaused they are used later on.
  177.  *
  178.  ****************/
  179. typedef enum{ XmFONT_IS_FONT, XmFONT_IS_FONTSET
  180.           } XmFontType;
  181.  
  182. enum { XmSTRING_DIRECTION_L_TO_R,
  183.        XmSTRING_DIRECTION_R_TO_L,
  184.        XmSTRING_DIRECTION_UNSET = 3,
  185.        XmSTRING_DIRECTION_DEFAULT = XmDEFAULT_DIRECTION
  186.        };
  187.  
  188. typedef unsigned char     XmStringDirection;
  189. typedef union __XmStringRec    *XmString;        /* opaque to outside */
  190. typedef XmString *    XmStringTable;        /* opaque to outside */
  191. typedef char *        XmStringCharSet;    /* Null term string */
  192. typedef char *        XmStringTag;        /* Null term string */
  193. typedef unsigned char    XmStringComponentType;    /* component tags */
  194.  
  195. typedef struct __XmRenditionRec         **XmFontListEntry; /* opaque to outside */
  196. typedef struct __XmRenderTableRec    **XmFontList;      /* opaque to outside */
  197. typedef struct _XmFontListContextRec *XmFontContext;   /* opaque to outside */
  198.  
  199. typedef struct __XmStringContextRec *_XmStringContext; /* opaque to outside */
  200. typedef union __XmStringRec        *_XmString;        /* opaque to outside */
  201. typedef struct __XmStringContextRec *XmStringContext;  /* opaque to outside */
  202.  
  203. enum{    XmSTRING_COMPONENT_UNKNOWN,      XmSTRING_COMPONENT_CHARSET,
  204.     XmSTRING_COMPONENT_TEXT,      XmSTRING_COMPONENT_DIRECTION,
  205.         XmSTRING_COMPONENT_SEPARATOR,     XmSTRING_COMPONENT_LOCALE_TEXT,
  206.     XmSTRING_COMPONENT_LOCALE,        XmSTRING_COMPONENT_WIDECHAR_TEXT,
  207.     XmSTRING_COMPONENT_LAYOUT_PUSH,   XmSTRING_COMPONENT_LAYOUT_POP,
  208.     XmSTRING_COMPONENT_RENDITION_BEGIN, XmSTRING_COMPONENT_RENDITION_END,
  209.     XmSTRING_COMPONENT_TAB
  210.     /* 13-125 reserved */
  211.     } ;
  212.  
  213. #define XmSTRING_COMPONENT_FONTLIST_ELEMENT_TAG    XmSTRING_COMPONENT_CHARSET
  214.  
  215. #define XmSTRING_COMPONENT_TAG        XmSTRING_COMPONENT_CHARSET
  216.  
  217. #define XmSTRING_COMPONENT_END        ((XmStringComponentType) 126)
  218.  
  219. #define XmSTRING_COMPONENT_USER_BEGIN    ((XmStringComponentType) 128)
  220.             /* 128-255 are user tags */
  221. #define XmSTRING_COMPONENT_USER_END    ((XmStringComponentType) 255)
  222.  
  223. typedef enum {
  224.     XmCHARSET_TEXT,            XmMULTIBYTE_TEXT,
  225.     XmWIDECHAR_TEXT,                    XmNO_TEXT
  226.     } XmTextType;
  227.  
  228. typedef enum {
  229.     XmOUTPUT_ALL,            XmOUTPUT_BETWEEN,
  230.     XmOUTPUT_BEGINNING,            XmOUTPUT_END,
  231.     XmOUTPUT_BOTH
  232.     } XmParseModel;
  233.  
  234. typedef unsigned char XmIncludeStatus;
  235. enum {
  236.   XmINSERT,    XmTERMINATE,    XmINVOKE
  237.   };
  238.  
  239. /* We are making an attempt (perhaps unnecessaryily) to keep our style
  240.    constants the same as the equivalent Xlib style constants. The first
  241.    Motif specific style constant starts at 32 so that the consortium can
  242.    add constants to their list without overlapping with ours. */
  243. typedef enum {
  244.     XmSTYLE_STRING = XStringStyle,
  245.     XmSTYLE_COMPOUND_TEXT = XCompoundTextStyle,
  246.     XmSTYLE_TEXT = XTextStyle,
  247.     XmSTYLE_STANDARD_ICC_TEXT = XStdICCTextStyle,
  248.     XmSTYLE_LOCALE = 32,
  249.     XmSTYLE_COMPOUND_STRING
  250.     } XmICCEncodingStyle;
  251.  
  252. /****************
  253.  *
  254.  * XmParseTable structure defines. These must be here (at the start of
  255.  * the file) because they are used later on.
  256.  *
  257.  ****************/
  258.  
  259. typedef struct __XmParseMappingRec *XmParseMapping;    /* opaque */
  260. typedef XmParseMapping             *XmParseTable;
  261.  
  262. /* A special pattern used to match a change of character direction. */
  263. #define XmDIRECTION_CHANGE    NULL
  264.  
  265.  
  266. typedef XmIncludeStatus (*XmParseProc) (XtPointer     *in_out,
  267.                     XtPointer      text_end,
  268.                     XmTextType     type,
  269.                     XmStringTag    locale_tag,
  270.                     XmParseMapping entry,
  271.                     int            pattern_length,
  272.                     XmString      *str_include,
  273.                     XtPointer      call_data);
  274.  
  275.  
  276. /****************
  277.  *
  278.  * XmTabList structure defines. These must be here (at the start of the file) 
  279.  * becaused they are used later on.
  280.  *
  281.  ****************/
  282. typedef enum { 
  283.   XmABSOLUTE,        XmRELATIVE
  284.   } XmOffsetModel;
  285.  
  286. typedef struct __XmTabRec    *XmTab;          /* opaque */
  287. typedef struct __XmTabListRec    *XmTabList;      /* opaque */
  288.  
  289.  
  290. /****************
  291.  *
  292.  * XmRenderTable structure defines. These must be here (at the start of the file) 
  293.  * becaused they are used later on.
  294.  *
  295.  ****************/
  296. /* XmRendition declarations */
  297. typedef struct __XmRenditionRec        **XmRendition;   /* opaque */
  298. typedef struct __XmRenderTableRec    **XmRenderTable; /* opaque */
  299.  
  300. typedef enum { 
  301.   XmSKIP,        XmMERGE_REPLACE,
  302.   XmMERGE_OLD,        XmMERGE_NEW, 
  303.   XmDUPLICATE    /* For XmFontListAdd and XmFontListAppendEntry. */
  304.   } XmMergeMode; 
  305.  
  306. #define XmAS_IS            255
  307. #define XmFORCE_COLOR        1
  308.  
  309. #define XmUNSPECIFIED_PIXEL     ((Pixel) (~0))
  310. #define XmDEFAULT_SELECT_COLOR   XmUNSPECIFIED_PIXEL    
  311. #define XmREVERSED_GROUND_COLORS (XmDEFAULT_SELECT_COLOR - 1)    
  312. #define XmHIGHLIGHT_COLOR        (XmREVERSED_GROUND_COLORS - 1)    
  313.  
  314. enum { XmUNSPECIFIED_LOAD_MODEL, XmLOAD_DEFERRED, XmLOAD_IMMEDIATE }; 
  315.  
  316.  
  317.  
  318. /************************************************************************
  319.  *  Primitive Resources and define values
  320.  ************************************************************************/
  321.  
  322. /* size policy values  */
  323.  
  324. enum{    XmCHANGE_ALL,            XmCHANGE_NONE,
  325.     XmCHANGE_WIDTH,            XmCHANGE_HEIGHT
  326.     } ;
  327.  
  328. /*  unit type values  */
  329.  
  330. enum{    XmPIXELS,            Xm100TH_MILLIMETERS,
  331.     Xm1000TH_INCHES,        Xm100TH_POINTS,
  332.     Xm100TH_FONT_UNITS,        XmINCHES,
  333.         XmCENTIMETERS,                  XmMILLIMETERS,
  334.         XmPOINTS,                       XmFONT_UNITS
  335.     } ;
  336.  
  337. /* DeleteResponse values */
  338.  
  339. enum{    XmDESTROY,            XmUNMAP,
  340.     XmDO_NOTHING
  341.     } ;
  342. enum{    XmEXPLICIT,            XmPOINTER
  343.     } ;
  344. /************************************************************************
  345.  *  Navigation defines 
  346.  ************************************************************************/
  347.  
  348. enum{    XmNONE,                XmTAB_GROUP,
  349.     XmSTICKY_TAB_GROUP,        XmEXCLUSIVE_TAB_GROUP
  350.     } ;
  351.  
  352. #define    XmDYNAMIC_DEFAULT_TAB_GROUP    (255)
  353.  
  354. /************************************************************************
  355.  * Audible warning
  356.  ************************************************************************/
  357.  
  358. enum{    /* XmNONE */            XmBELL = 1
  359.     } ;
  360.  
  361. /************************************************************************
  362.  * Input Manager defines
  363.  ************************************************************************/
  364.  
  365. enum {
  366.         XmPER_SHELL,            XmPER_WIDGET,
  367.         XmINHERIT_POLICY = 255
  368.     } ;
  369.  
  370. typedef unsigned char XmInputPolicy;
  371.  
  372. /************************************************************************
  373.  *  Menu defines
  374.  ************************************************************************/
  375.  
  376. enum{    XmNO_ORIENTATION,        XmVERTICAL,
  377.     XmHORIZONTAL
  378.     } ;
  379. enum{    XmWORK_AREA,            XmMENU_BAR,
  380.     XmMENU_PULLDOWN,        XmMENU_POPUP,
  381.     XmMENU_OPTION
  382.     } ;
  383. enum{    XmNO_PACKING,            XmPACK_TIGHT,
  384.     XmPACK_COLUMN,            XmPACK_NONE
  385.     } ;
  386. enum{/* XmALIGNMENT_BASELINE_TOP,    XmALIGNMENT_CENTER,
  387.     XmALIGNMENT_BASELINE_BOTTOM, */    XmALIGNMENT_CONTENTS_TOP = 3,
  388.     XmALIGNMENT_CONTENTS_BOTTOM
  389.     } ;
  390. enum{    XmTEAR_OFF_ENABLED,        XmTEAR_OFF_DISABLED
  391.     } ;
  392. enum{    XmUNPOST,             XmUNPOST_AND_REPLAY
  393.     } ;
  394. enum{   XmLAST_POSITION = -1,           XmFIRST_POSITION
  395.     } ;
  396. enum{    XmPOPUP_DISABLED = 0,    XmPOPUP_KEYBOARD = 1,
  397.     XmPOPUP_AUTOMATIC,    XmPOPUP_AUTOMATIC_RECURSIVE };
  398.  
  399. /************************************************************************
  400.  *  ComboBox defines
  401.  ************************************************************************/
  402.  
  403. enum{    XmCOMBO_BOX=0,        XmDROP_DOWN_COMBO_BOX,
  404.     XmDROP_DOWN_LIST
  405.     } ;
  406.  
  407. enum{    /* XmNONE */ XmQUICK_NAVIGATE = 1, XmINVALID_MATCH_BEHAVIOR
  408.     } ;
  409.  
  410. enum{   XmZERO_BASED,        XmONE_BASED
  411.         } ;
  412.  
  413. #define XmINVALID_POSITION -1
  414.  
  415. /************************************************************************
  416.  *  Label/Frame defines
  417.  ************************************************************************/
  418.  
  419. enum{    XmALIGNMENT_BEGINNING,        XmALIGNMENT_CENTER,
  420.     XmALIGNMENT_END
  421.     } ;
  422. enum{   XmALIGNMENT_BASELINE_TOP,    /* XmALIGNMENT_CENTER, */
  423.     XmALIGNMENT_BASELINE_BOTTOM = 2, XmALIGNMENT_WIDGET_TOP,
  424.     XmALIGNMENT_WIDGET_BOTTOM
  425.        } ;
  426. /* new enum introduced in 2.0 to clear up the confusion in
  427.    widget top/bottom attachment */
  428. #define XmALIGNMENT_CHILD_TOP XmALIGNMENT_WIDGET_BOTTOM
  429. #define XmALIGNMENT_CHILD_BOTTOM XmALIGNMENT_WIDGET_TOP
  430.  
  431. /************************************************************************
  432.  *  Frame defines
  433.  ************************************************************************/
  434.  
  435. enum{    XmFRAME_GENERIC_CHILD,          XmFRAME_WORKAREA_CHILD,
  436.         XmFRAME_TITLE_CHILD
  437.     } ;
  438. /************************************************************************
  439.  *  ToggleButton  defines
  440.  ************************************************************************/
  441.  
  442. enum{    XmN_OF_MANY = 1,        XmONE_OF_MANY,
  443.     XmONE_OF_MANY_ROUND,        XmONE_OF_MANY_DIAMOND
  444. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  445.     , Sg3D_N_OF_MANY,         Sg3D_ONE_OF_MANY
  446. #endif    
  447.     } ;
  448.  
  449. /************************************************************************
  450.  *  Form defines
  451.  ************************************************************************/
  452.  
  453. enum{    XmATTACH_NONE,            XmATTACH_FORM,
  454.     XmATTACH_OPPOSITE_FORM,        XmATTACH_WIDGET,
  455.     XmATTACH_OPPOSITE_WIDGET,    XmATTACH_POSITION,
  456.     XmATTACH_SELF
  457.     } ;
  458. enum{    XmRESIZE_NONE,            XmRESIZE_GROW,
  459.     XmRESIZE_ANY
  460.     } ;
  461.  
  462. /****************************************************************************
  463.  *  Callback reasons 
  464.  ****************************************************************************/
  465.  
  466. enum{    XmCR_NONE,            XmCR_HELP,
  467.     XmCR_VALUE_CHANGED,        XmCR_INCREMENT,
  468.     XmCR_DECREMENT,            XmCR_PAGE_INCREMENT,
  469.     XmCR_PAGE_DECREMENT,        XmCR_TO_TOP,
  470.     XmCR_TO_BOTTOM,            XmCR_DRAG,
  471.     XmCR_ACTIVATE,            XmCR_ARM,
  472.     XmCR_DISARM,            XmCR_MAP = 16,
  473.     XmCR_UNMAP,            XmCR_FOCUS,
  474.     XmCR_LOSING_FOCUS,        XmCR_MODIFYING_TEXT_VALUE,
  475.     XmCR_MOVING_INSERT_CURSOR,    XmCR_EXECUTE,
  476.     XmCR_SINGLE_SELECT,        XmCR_MULTIPLE_SELECT,
  477.     XmCR_EXTENDED_SELECT,        XmCR_BROWSE_SELECT,
  478.     XmCR_DEFAULT_ACTION,        XmCR_CLIPBOARD_DATA_REQUEST,
  479.     XmCR_CLIPBOARD_DATA_DELETE,    XmCR_CASCADING,
  480.     XmCR_OK,            XmCR_CANCEL,
  481.     XmCR_APPLY = 34,        XmCR_NO_MATCH,
  482.     XmCR_COMMAND_ENTERED,        XmCR_COMMAND_CHANGED,
  483.     XmCR_EXPOSE,            XmCR_RESIZE,
  484.     XmCR_INPUT,            XmCR_GAIN_PRIMARY,
  485.     XmCR_LOSE_PRIMARY,        XmCR_CREATE,
  486.     XmCR_TEAR_OFF_ACTIVATE,        XmCR_TEAR_OFF_DEACTIVATE,
  487.     XmCR_OBSCURED_TRAVERSAL,    XmCR_FOCUS_MOVED,
  488.     XmCR_REPOST = 54,        XmCR_COLLAPSED,
  489.     XmCR_EXPANDED,            XmCR_SELECT,
  490.     XmCR_DRAG_START,        XmCR_NO_FONT,
  491.     XmCR_NO_RENDITION,        XmCR_POST,
  492.     XmCR_SPIN_NEXT,            XmCR_SPIN_PRIOR,
  493.     XmCR_SPIN_FIRST,        XmCR_SPIN_LAST,
  494.     XmCR_PAGE_SCROLLER_INCREMENT,   XmCR_PAGE_SCROLLER_DECREMENT,
  495.     XmCR_MAJOR_TAB,                 XmCR_MINOR_TAB,
  496.     XmCR_START_JOB,            XmCR_END_JOB,
  497.     XmCR_PAGE_SETUP,        XmCR_PDM_NONE,
  498.     XmCR_PDM_UP,            XmCR_PDM_START_ERROR,
  499.     XmCR_PDM_START_VXAUTH,        XmCR_PDM_START_PXAUTH, 
  500.     XmCR_PDM_OK,            XmCR_PDM_CANCEL,
  501.     XmCR_PDM_EXIT_ERROR,
  502.     XmCR_PROTOCOLS = 6666 /* required for BC. See CR 9158 */
  503.     } ;
  504.  
  505. /************************************************************************
  506.  *  new ScrollBar showArrows  define
  507.  ************************************************************************/
  508.  
  509. enum{    /* XmNONE */        XmEACH_SIDE = 1,
  510.     XmMAX_SIDE,             XmMIN_SIDE
  511.     } ;
  512.  
  513.  
  514. /************************************************************************
  515.  *  Sliding mode
  516.  ************************************************************************/
  517.  
  518. /* this is funny looking since in 1.2 it was SGi specfic---now its been 
  519.  * incorporated into 2.1, using the _same_ enums, but SGIs are typedefed.
  520.  */
  521.  
  522. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  523. typedef
  524. #endif
  525. enum{    XmSLIDER,        XmTHERMOMETER} 
  526. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  527. XmSlidingMode
  528. #endif
  529. ;
  530.  
  531.  
  532. /************************************************************************
  533.  *  Slider Visual
  534.  ************************************************************************/
  535.  
  536. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  537. typedef
  538. #endif
  539. enum{    
  540. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  541.         XmSHADOWED, XmFLAT_FOREGROUND, XmETCHED_LINE,
  542. #endif        
  543.         XmBACKGROUND_COLOR=3,     XmFOREGROUND_COLOR, 
  544.         XmTROUGH_COLOR,         XmSHADOWED_BACKGROUND}
  545. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  546. XmSliderVisual
  547. #endif
  548. ;
  549.  
  550.  
  551. /************************************************************************
  552.  *  Slider Mark
  553.  ************************************************************************/
  554.  
  555. enum{    /* XmNONE, */           
  556. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  557. /* in 2.1 ETCHED_LINE has been grabed by sliderVisual */
  558.     SgETCHED_LINE = 1,
  559. #else    
  560.     XmETCHED_LINE = 1,
  561. #endif    
  562.         XmTHUMB_MARK,     XmROUND_MARK } ;
  563.  
  564.  
  565. /************************************************************************
  566.  *  new Scale showValue 
  567.  ************************************************************************/
  568.  
  569. enum{    /* XmNONE */        XmNEAR_SLIDER = 1,
  570.     XmNEAR_BORDER
  571.     } ;
  572.  
  573.  
  574. /************************************************************************
  575.  *  new ScrolledWindow/MainWindow chidType
  576.  ************************************************************************/
  577.  
  578. /* XmWORK_AREA, XmMENU_BAR and XmSEPARATOR have to match the existing ones */
  579. enum{    /* XmWORK_AREA = 0, XmMENU_BAR = 1, */ 
  580.         XmHOR_SCROLLBAR = 2, 
  581.     XmVERT_SCROLLBAR,
  582.     XmCOMMAND_WINDOW, 
  583.         /* XmSEPARATOR = 5 */
  584.         XmMESSAGE_WINDOW = 6,
  585.         XmSCROLL_HOR, XmSCROLL_VERT, XmNO_SCROLL,
  586.     XmCLIP_WINDOW, XmGENERIC_CHILD
  587.     } ;
  588.  
  589. /************************************************************************
  590.  *  new ScrolledWindow auto drag enum
  591.  ************************************************************************/
  592.  
  593. enum{    XmAUTO_DRAG_ENABLED,        XmAUTO_DRAG_DISABLED
  594.     } ;
  595.  
  596. /************************************************************************
  597.  *  new Display enable warp enum
  598.  ************************************************************************/
  599.  
  600. enum{    XmENABLE_WARP_ON,        XmENABLE_WARP_OFF
  601.     } ;
  602.  
  603. /************************************************************************
  604.  *  new Display enable btn1 transfer enum
  605.  ************************************************************************/
  606.  
  607. enum{   XmOFF,                XmBUTTON2_ADJUST,
  608.     XmBUTTON2_TRANSFER };
  609.  
  610. /************************************************************************
  611.  * auto_selection_type
  612.  ************************************************************************/
  613.  
  614. enum{   XmAUTO_UNSET,                   XmAUTO_BEGIN,
  615.         XmAUTO_MOTION,                  XmAUTO_CANCEL,
  616.         XmAUTO_NO_CHANGE,               XmAUTO_CHANGE
  617.         };
  618.  
  619. /************************************************************************
  620.  *  Callback structures 
  621.  ************************************************************************/
  622.  
  623. typedef struct
  624. {
  625.     int     reason;
  626.     XEvent  *event;
  627. } XmAnyCallbackStruct;
  628.  
  629. typedef struct
  630. {
  631.     int     reason;
  632.     XEvent  *event;
  633.     int        click_count;
  634. } XmArrowButtonCallbackStruct;
  635.  
  636. typedef struct _XmDragStartCallbackStruct {
  637.     int                 reason;
  638.     XEvent              *event;
  639.     Widget              widget;
  640.     Boolean             doit;
  641. } XmDragStartCallbackStruct, *XmDragStartCallback;
  642.  
  643. typedef struct
  644. {
  645.     int     reason;
  646.     XEvent  *event;
  647.     XmString item_or_text;
  648.     int     item_position;
  649. } XmComboBoxCallbackStruct;
  650.  
  651. typedef struct
  652. {
  653.     int     reason;
  654.     XEvent  *event;
  655.     Window  window;
  656. } XmDrawingAreaCallbackStruct;
  657.  
  658. typedef struct
  659. {
  660.     int     reason;
  661.     XEvent  *event;
  662.     Window  window;
  663.     int        click_count;
  664. } XmDrawnButtonCallbackStruct;
  665.  
  666. typedef struct
  667. {
  668.     int     reason;
  669.     XEvent  *event;
  670.     int        click_count;
  671. } XmPushButtonCallbackStruct;
  672.  
  673. typedef struct
  674. {
  675.     int     reason;
  676.     XEvent  *event;
  677.     Widget  widget;
  678.     char    *data;
  679.     char    *callbackstruct;
  680. } XmRowColumnCallbackStruct;
  681.  
  682. typedef struct
  683. {
  684.    int reason;
  685.    XEvent * event;
  686.    int value;
  687.    int pixel;
  688. } XmScrollBarCallbackStruct;
  689.  
  690. typedef struct
  691. {
  692.    int reason;
  693.    XEvent * event;
  694.    int set;
  695. } XmToggleButtonCallbackStruct;
  696.  
  697. typedef struct
  698. {
  699.    int          reason;
  700.    XEvent    *event;
  701.    XmString  item;
  702.    int       item_length;
  703.    int       item_position;
  704.    XmString  *selected_items;
  705.    int       selected_item_count;
  706.    int       *selected_item_positions;
  707.    char      selection_type;
  708.    char         auto_selection_type;
  709. } XmListCallbackStruct;
  710.  
  711. typedef struct
  712. {
  713.     int reason;
  714.     XEvent    *event;
  715.     XmString    value;
  716.     int        length;
  717. } XmSelectionBoxCallbackStruct;
  718.  
  719. typedef struct
  720. {
  721.     int reason;
  722.     XEvent    *event;
  723.     XmString    value;
  724.     int        length;
  725. } XmCommandCallbackStruct;
  726.  
  727. typedef struct
  728. {
  729.     int     reason;
  730.     XEvent    *event;
  731.     XmString    value;
  732.     int        length;
  733.     XmString    mask;
  734.     int        mask_length;
  735.     XmString    dir ;
  736.     int        dir_length ;
  737.     XmString    pattern ;
  738.     int        pattern_length ;
  739. } XmFileSelectionBoxCallbackStruct;
  740.  
  741.  
  742. typedef struct 
  743. {
  744.    int reason;
  745.    XEvent * event;
  746.    int value;
  747. } XmScaleCallbackStruct;
  748.  
  749. typedef struct
  750. {
  751.   int      reason;
  752.   XEvent   *event;
  753.   Widget   menuToPost;
  754.   Boolean  postIt;
  755.   Widget   target;
  756. } XmPopupHandlerCallbackStruct;
  757.  
  758. typedef struct
  759. {
  760.   int         reason;
  761.   XEvent      *event;
  762.   Widget      item;
  763.   unsigned char       new_outline_state;
  764. } XmContainerOutlineCallbackStruct;
  765.  
  766. typedef struct
  767. {
  768.   int             reason;
  769.   XEvent          *event;
  770.   WidgetList      selected_items;
  771.   int             selected_item_count;
  772.   unsigned char   auto_selection_type;
  773. } XmContainerSelectCallbackStruct;
  774.  
  775. typedef struct
  776. {
  777.   int         reason;
  778.   XEvent      *event;
  779.   int         page_number;
  780.   Widget      page_widget;
  781.   int         prev_page_number;
  782.   Widget      prev_page_widget;
  783. } XmNotebookCallbackStruct;
  784.  
  785. typedef struct
  786. {
  787.     int             reason;
  788.     XEvent          *event;
  789.     XmRendition        rendition;
  790.     char        *font_name;
  791.     XmRenderTable    render_table;
  792.     XmStringTag        tag;
  793. } XmDisplayCallbackStruct;
  794.  
  795. #if ! defined(_SGIMOTIF) || ( defined(_SGIMOTIF) && defined(_SGIMOTIF_PRINT) )
  796. typedef struct
  797. {
  798.     int        reason;       /* XmCR_START_JOB, XmCR_END_JOB, XmCR_PAGE_SETUP */
  799.     XEvent    *event;
  800.     XPContext    context;
  801.     Boolean    last_page; /* in_out */
  802.     XtPointer    detail;
  803. } XmPrintShellCallbackStruct;
  804. #endif
  805.  
  806. /************************************************************************
  807.  *  PushButton defines
  808.  ************************************************************************/
  809.  
  810. enum{    XmMULTICLICK_DISCARD,        XmMULTICLICK_KEEP
  811.     } ;
  812. /************************************************************************
  813.  *  DrawnButton defines
  814.  ************************************************************************/
  815.  
  816. enum{    XmSHADOW_IN = 7,        XmSHADOW_OUT
  817.     } ;
  818. /************************************************************************
  819.  *  Arrow defines
  820.  ************************************************************************/
  821.  
  822. enum{    XmARROW_UP,            XmARROW_DOWN,
  823.     XmARROW_LEFT,            XmARROW_RIGHT
  824.     } ;
  825. /************************************************************************
  826.  *  Separator defines
  827.  *  Note: XmINVALID_SEPARATOR_TYPE marks the last+1 separator type
  828.  ************************************************************************/
  829.  
  830. enum{    XmNO_LINE,            XmSINGLE_LINE,
  831.     XmDOUBLE_LINE,            XmSINGLE_DASHED_LINE,
  832.     XmDOUBLE_DASHED_LINE,        XmSHADOW_ETCHED_IN,
  833.     XmSHADOW_ETCHED_OUT,        XmSHADOW_ETCHED_IN_DASH,
  834.     XmSHADOW_ETCHED_OUT_DASH,    XmINVALID_SEPARATOR_TYPE
  835.     } ;
  836.  
  837. enum{    XmPIXMAP = 1,            XmSTRING
  838.     } ;
  839.  
  840. /************************************************************************
  841.  *  Drag and Drop defines
  842.  ************************************************************************/
  843.  
  844. enum{    XmWINDOW,             /* XmPIXMAP, */
  845.     XmCURSOR = 2,             XmDRAG_WINDOW = 3
  846.     } ;
  847.  
  848. /************************************************************************
  849.  *  ScrollBar defines
  850.  ************************************************************************/
  851.  
  852. enum{    XmMAX_ON_TOP,            XmMAX_ON_BOTTOM,
  853.     XmMAX_ON_LEFT,            XmMAX_ON_RIGHT
  854.     } ;
  855. /************************************************************************
  856.  *                                    *
  857.  * List Widget defines                            *
  858.  *                                    *
  859.  ************************************************************************/
  860.  
  861. enum{    XmSINGLE_SELECT,        XmMULTIPLE_SELECT,
  862.     XmEXTENDED_SELECT,        XmBROWSE_SELECT
  863.     } ;
  864. enum{    XmSTATIC,            XmDYNAMIC
  865.     } ;
  866. enum{ XmNORMAL_MODE,            XmADD_MODE
  867.         } ;
  868. /************************************************************************
  869.  *                                                                      *
  870.  * Container Widget defines                                             *
  871.  *                                                                      *
  872.  ************************************************************************/
  873.  
  874.         /* XmRAutomaticSelection */
  875. enum {  XmNO_AUTO_SELECT,
  876.         XmAUTO_SELECT
  877.         };
  878.  
  879.         /* XmRLineStyle */
  880. enum {  /* XmNO_LINE */
  881.         XmSINGLE = 1
  882.         };
  883.  
  884.         /* XmREntryViewType */
  885. enum {  /* XmLARGE_ICON */
  886.         /* XmSMALL_ICON */
  887.         XmANY_ICON = 2
  888.         };
  889.  
  890.         /* XmRSpatialIncludeModel */
  891. enum {  XmAPPEND,
  892.         XmCLOSEST,
  893.         XmFIRST_FIT
  894.         };
  895.  
  896.         /* XmRLayoutType */
  897. enum {  XmOUTLINE,
  898.         XmSPATIAL,
  899.     XmDETAIL
  900.         };
  901.  
  902.     /* XmNoutlineButtonPolicy */
  903. enum {    XmOUTLINE_BUTTON_PRESENT,
  904.     XmOUTLINE_BUTTON_ABSENT
  905.     };
  906.  
  907.         /* XmRSpatialPlaceStyle */
  908. enum {  /* XmNONE */
  909.     XmGRID = 1,
  910.     XmCELLS
  911.         };
  912.  
  913.     /* XmRPrimaryOwnership */
  914. enum {    XmOWN_NEVER,
  915.     XmOWN_ALWAYS,
  916.     XmOWN_MULTIPLE,
  917.     XmOWN_POSSIBLE_MULTIPLE
  918.     };
  919.  
  920.         /* XmRSpatialResizeModel */
  921. enum {  XmGROW_MINOR,
  922.     XmGROW_MAJOR,
  923.         XmGROW_BALANCED
  924.         };
  925.  
  926.         /* XmRSelectionTechnique */
  927. enum {  XmMARQUEE,
  928.         XmMARQUEE_EXTEND_START,
  929.         XmMARQUEE_EXTEND_BOTH,
  930.         XmTOUCH_ONLY,
  931.         XmTOUCH_OVER
  932.         };
  933.  
  934.         /* XmRSpatialSnapModel */
  935. enum {  /* XmNONE */
  936.         XmSNAP_TO_GRID = 1,
  937.         XmCENTER
  938.         };
  939.  
  940.         /* XmROutlineState */
  941. enum {  XmCOLLAPSED,
  942.         XmEXPANDED
  943.         };
  944.  
  945. /************************************************************************
  946.  *                                                                      *
  947.  * IconGadget defines                                                   *
  948.  *                                                                      *
  949.  ************************************************************************/
  950.  
  951.         /* XmRViewType */
  952. enum {  XmLARGE_ICON,
  953.         XmSMALL_ICON
  954.         };
  955.  
  956.         /* XmRVisualEmphasis */
  957. enum {  XmSELECTED,
  958.         XmNOT_SELECTED
  959.         };
  960.  
  961. /************************************************************************
  962.  *                                                                      *
  963.  * Notebook Widget defines                                              *
  964.  *                                                                      *
  965.  ************************************************************************/
  966.  
  967. #define XmUNSPECIFIED_PAGE_NUMBER       (-32768)
  968.  
  969.         /* XmRBindingType */
  970. enum {  /* XmNONE */
  971.         /* XmPIXMAP */
  972.         XmSOLID = 2,
  973.         XmSPIRAL,
  974.         XmPIXMAP_OVERLAP_ONLY
  975.         };
  976.  
  977.         /* XmRNBChildType */
  978. enum {  /* XmNONE */
  979.         XmPAGE = 1,
  980.         XmMAJOR_TAB,
  981.         XmMINOR_TAB,
  982.         XmSTATUS_AREA,
  983.         XmPAGE_SCROLLER
  984.         };
  985.  
  986. /************************************************************************
  987.  *                                    *
  988.  * Spin button defines.                            *
  989.  *                                    *
  990.  ************************************************************************/
  991.  
  992. /* XmNarrowOrientation */
  993. enum
  994. {
  995.     XmARROWS_VERTICAL,
  996.     XmARROWS_HORIZONTAL
  997. };
  998.  
  999. /* XmNarrowLayout */
  1000. enum
  1001. {
  1002.     XmARROWS_END,
  1003.     XmARROWS_BEGINNING,
  1004.     XmARROWS_SPLIT,
  1005.     XmARROWS_FLAT_END,
  1006.     XmARROWS_FLAT_BEGINNING
  1007. };
  1008.  
  1009. /* XmNarrowSensitivity and XmNdefaultArrowSensitivity */
  1010. /* Please note that these arrows form the proper values 
  1011.    for a bit mask. */
  1012. enum
  1013. {
  1014.     XmARROWS_INSENSITIVE,
  1015.     XmARROWS_INCREMENT_SENSITIVE,
  1016.     XmARROWS_DECREMENT_SENSITIVE,
  1017.     XmARROWS_SENSITIVE,
  1018.     XmARROWS_DEFAULT_SENSITIVITY
  1019. };
  1020.  
  1021. /* XmNpositionType */
  1022. enum
  1023. {
  1024.     XmPOSITION_INDEX,
  1025.     XmPOSITION_VALUE
  1026. };
  1027.  
  1028. /* XmNspinButtonChildType */
  1029. enum
  1030. {
  1031.     /* XmPIXMAP = 1 */
  1032.     /* XmSTRING */
  1033.     XmNUMERIC = 3
  1034. };
  1035.  
  1036. /* Return values for Xm[Simple]SpinBoxValidatePosition */
  1037. enum
  1038. {
  1039.     XmVALID_VALUE,
  1040.     XmCURRENT_VALUE,
  1041.     XmMAXIMUM_VALUE,
  1042.     XmMINIMUM_VALUE,
  1043.     XmINCREMENT_VALUE
  1044. };
  1045.  
  1046. typedef struct
  1047. {
  1048.     int        reason;
  1049.     XEvent    *event;
  1050.     Widget      widget;
  1051.     Boolean     doit;
  1052.     int        position;
  1053.     XmString    value;
  1054.     Boolean    crossed_boundary;
  1055. } XmSpinBoxCallbackStruct;
  1056.  
  1057.  
  1058. /************************************************************************
  1059.  *                                    *
  1060.  * Scrolled Window defines.                        *
  1061.  *                                    *
  1062.  ************************************************************************/
  1063.  
  1064. enum{    XmVARIABLE,            XmCONSTANT,
  1065.     XmRESIZE_IF_POSSIBLE
  1066.     } ;
  1067. enum{    XmAUTOMATIC,            XmAPPLICATION_DEFINED
  1068.     } ;
  1069. enum{    /* XmSTATIC */            XmAS_NEEDED = 1
  1070.     } ;
  1071.  
  1072. #define SW_TOP        1
  1073. #define SW_BOTTOM    0
  1074. #define SW_LEFT        2
  1075. #define SW_RIGHT    0
  1076.  
  1077. #define XmTOP_LEFT    (SW_TOP | SW_LEFT)
  1078. #define XmBOTTOM_LEFT    (SW_BOTTOM  | SW_LEFT)
  1079. #define XmTOP_RIGHT    (SW_TOP | SW_RIGHT)
  1080. #define XmBOTTOM_RIGHT    (SW_BOTTOM  | SW_RIGHT)
  1081.  
  1082. /************************************************************************
  1083.  *                                    *
  1084.  * MainWindow Resources                                                 *
  1085.  *                                    *
  1086.  ************************************************************************/
  1087.  
  1088. enum{    XmCOMMAND_ABOVE_WORKSPACE,    XmCOMMAND_BELOW_WORKSPACE
  1089.     } ;
  1090. /************************************************************************
  1091.  *                                    *
  1092.  * Text Widget defines                            *
  1093.  *                                    *
  1094.  ************************************************************************/
  1095.  
  1096. enum{    XmMULTI_LINE_EDIT,        XmSINGLE_LINE_EDIT
  1097.     } ;
  1098.  
  1099. typedef enum{
  1100.     XmTEXT_FORWARD,
  1101.     XmTEXT_BACKWARD
  1102.     } XmTextDirection;
  1103.  
  1104. typedef long XmTextPosition;
  1105. typedef Atom XmTextFormat;
  1106.  
  1107. #define XmFMT_8_BIT    ((XmTextFormat) XA_STRING)    /* 8-bit text. */
  1108. #define XmFMT_16_BIT    ((XmTextFormat) 2)        /* 16-bit text. */
  1109.  
  1110. #define FMT8BIT        XmFMT_8_BIT    /* For backwards compatibility only.*/
  1111. #define FMT16BIT    XmFMT_16_BIT    /* For backwards compatibility only.*/
  1112.  
  1113. typedef enum{
  1114.     XmSELECT_POSITION,        XmSELECT_WHITESPACE,
  1115.     XmSELECT_WORD,            XmSELECT_LINE,
  1116.     XmSELECT_ALL,            XmSELECT_PARAGRAPH,
  1117.     XmSELECT_OUT_LINE
  1118.     } XmTextScanType ;
  1119.  
  1120. typedef enum{
  1121.     XmHIGHLIGHT_NORMAL,        XmHIGHLIGHT_SELECTED,
  1122.     XmHIGHLIGHT_SECONDARY_SELECTED,    XmSEE_DETAIL
  1123.     } XmHighlightMode ;
  1124.  
  1125. /* XmTextBlock's are used to pass text around. */
  1126.  
  1127. typedef struct {
  1128.     char *ptr;                  /* Pointer to data. */
  1129.     int length;                 /* Number of bytes of data. */
  1130.     XmTextFormat format;       /* Representations format */
  1131. } XmTextBlockRec, *XmTextBlock;
  1132.  
  1133. typedef struct
  1134. {
  1135.     int reason;
  1136.     XEvent  *event;
  1137.     Boolean doit;
  1138.     long currInsert, newInsert;
  1139.     long startPos, endPos;
  1140.     XmTextBlock text;
  1141. } XmTextVerifyCallbackStruct, *XmTextVerifyPtr;
  1142.  
  1143. /* XmTextBlockWcs's are used in 1.2 modifyVerifyWcs callbacks for Text[Field]
  1144.  * widgets. */
  1145.  
  1146. typedef struct {
  1147.     wchar_t *wcsptr;            /* Pointer to data. */
  1148.     int length;                 /* Number of characters (not bytes) of data. */
  1149. } XmTextBlockRecWcs, *XmTextBlockWcs;
  1150.  
  1151. typedef struct
  1152. {
  1153.     int reason;
  1154.     XEvent  *event;
  1155.     Boolean doit;
  1156.     long currInsert, newInsert;
  1157.     long startPos, endPos;
  1158.     XmTextBlockWcs text;
  1159. } XmTextVerifyCallbackStructWcs, *XmTextVerifyPtrWcs;
  1160.  
  1161. /* functions renamed after 1.0 release due to resource name overlap */
  1162. #define XmTextGetTopPosition                XmTextGetTopCharacter
  1163. #define XmTextSetTopPosition                XmTextSetTopCharacter
  1164.  
  1165. #define XmCOPY_FAILED        0
  1166. #define XmCOPY_SUCCEEDED    1
  1167. #define XmCOPY_TRUNCATED    2
  1168.  
  1169. /************************************************************************
  1170.  *                                    *
  1171.  *  DIALOG defines..  BulletinBoard and things common to its subclasses *
  1172.  *          CommandBox    MessageBox    Selection    FileSelection      *
  1173.  *                                    *
  1174.  ************************************************************************/
  1175.  
  1176. /* child type defines for Xm...GetChild() */
  1177.  
  1178. enum{    XmDIALOG_NONE,            XmDIALOG_APPLY_BUTTON,
  1179.     XmDIALOG_CANCEL_BUTTON,        XmDIALOG_DEFAULT_BUTTON,
  1180.     XmDIALOG_OK_BUTTON,        XmDIALOG_FILTER_LABEL,
  1181.     XmDIALOG_FILTER_TEXT,        XmDIALOG_HELP_BUTTON,
  1182.     XmDIALOG_LIST,            XmDIALOG_LIST_LABEL,
  1183.     XmDIALOG_MESSAGE_LABEL,        XmDIALOG_SELECTION_LABEL,
  1184.     XmDIALOG_SYMBOL_LABEL,        XmDIALOG_TEXT,
  1185.     XmDIALOG_SEPARATOR,        XmDIALOG_DIR_LIST,
  1186.     XmDIALOG_DIR_LIST_LABEL
  1187.     } ;
  1188.  
  1189. #define XmDIALOG_HISTORY_LIST         XmDIALOG_LIST
  1190. #define XmDIALOG_PROMPT_LABEL         XmDIALOG_SELECTION_LABEL
  1191. #define XmDIALOG_VALUE_TEXT           XmDIALOG_TEXT
  1192. #define XmDIALOG_COMMAND_TEXT         XmDIALOG_TEXT
  1193. #define XmDIALOG_FILE_LIST            XmDIALOG_LIST
  1194. #define XmDIALOG_FILE_LIST_LABEL      XmDIALOG_LIST_LABEL
  1195.  
  1196. /*  dialog style defines  */
  1197.  
  1198. enum{    XmDIALOG_MODELESS,        XmDIALOG_PRIMARY_APPLICATION_MODAL,
  1199.     XmDIALOG_FULL_APPLICATION_MODAL,XmDIALOG_SYSTEM_MODAL
  1200.     } ;
  1201.  
  1202. /* The following is for compatibility only. Its use is deprecated.
  1203.  */
  1204. #define XmDIALOG_APPLICATION_MODAL    XmDIALOG_PRIMARY_APPLICATION_MODAL
  1205.  
  1206. /************************************************************************
  1207.  * XmSelectionBox, XmFileSelectionBox and XmCommand - misc. stuff       *
  1208.  ***********************************************************************/
  1209.  
  1210. /* Defines for Selection child placement
  1211. */
  1212. enum{    XmPLACE_TOP,            XmPLACE_ABOVE_SELECTION,
  1213.     XmPLACE_BELOW_SELECTION
  1214.     } ;
  1215.  
  1216. /* Defines for file type mask:
  1217. */
  1218. #define XmFILE_DIRECTORY (1 << 0)
  1219. #define XmFILE_REGULAR   (1 << 1)
  1220. #define XmFILE_ANY_TYPE  (XmFILE_DIRECTORY | XmFILE_REGULAR)
  1221.  
  1222. #if defined(_SGIMOTIF) && defined(_SGIMOTIFAPI)
  1223. #define SgFILE_NOT_HIDDEN (1<<2)
  1224. #endif
  1225.  
  1226. /* Defines for selection dialog type:
  1227. */
  1228. enum{    XmDIALOG_WORK_AREA,        XmDIALOG_PROMPT,
  1229.     XmDIALOG_SELECTION,        XmDIALOG_COMMAND,
  1230.     XmDIALOG_FILE_SELECTION
  1231.     } ;
  1232.  
  1233. /************************************************************************
  1234.  *  XmMessageBox           stuff not common to other dialogs            *
  1235.  ***********************************************************************/
  1236.  
  1237. /* defines for dialog type */
  1238.  
  1239. enum{    XmDIALOG_TEMPLATE,        XmDIALOG_ERROR,
  1240.     XmDIALOG_INFORMATION,        XmDIALOG_MESSAGE,
  1241.     XmDIALOG_QUESTION,        XmDIALOG_WARNING,
  1242.     XmDIALOG_WORKING
  1243.     } ;
  1244.  
  1245. /*  Traversal types  */
  1246.  
  1247. typedef enum{
  1248.     XmVISIBILITY_UNOBSCURED,    XmVISIBILITY_PARTIALLY_OBSCURED,
  1249.     XmVISIBILITY_FULLY_OBSCURED
  1250.     } XmVisibility ;
  1251.  
  1252.  
  1253. typedef enum{
  1254.     XmTRAVERSE_CURRENT,        XmTRAVERSE_NEXT,
  1255.     XmTRAVERSE_PREV,        XmTRAVERSE_HOME,
  1256.     XmTRAVERSE_NEXT_TAB_GROUP,    XmTRAVERSE_PREV_TAB_GROUP,
  1257.     XmTRAVERSE_UP,            XmTRAVERSE_DOWN,
  1258.     XmTRAVERSE_LEFT,        XmTRAVERSE_RIGHT,
  1259.     XmTRAVERSE_GLOBALLY_FORWARD,    XmTRAVERSE_GLOBALLY_BACKWARD
  1260.     } XmTraversalDirection ;
  1261.  
  1262. typedef struct _XmTraverseObscuredCallbackStruct
  1263. {    int            reason ;
  1264.     XEvent *        event ;
  1265.     Widget            traversal_destination ;
  1266.     XmTraversalDirection    direction ;
  1267.     } XmTraverseObscuredCallbackStruct ;
  1268.  
  1269. typedef unsigned char   XmNavigationType;
  1270.  
  1271.  
  1272. /***********************************************************************
  1273.  *
  1274.  * SimpleMenu declarations and definitions.
  1275.  *
  1276.  ***********************************************************************/
  1277.  
  1278. typedef unsigned char XmButtonType;
  1279. typedef XmButtonType * XmButtonTypeTable;
  1280. typedef KeySym * XmKeySymTable;
  1281. typedef XmStringCharSet * XmStringCharSetTable;
  1282.  
  1283. enum{    XmPUSHBUTTON = 1,        XmTOGGLEBUTTON,
  1284.     XmRADIOBUTTON,            XmCASCADEBUTTON,
  1285.     XmSEPARATOR,            XmDOUBLE_SEPARATOR,
  1286.     XmTITLE
  1287.     } ;
  1288. #define XmCHECKBUTTON            XmTOGGLEBUTTON
  1289.  
  1290.  
  1291. /***********************************************************************
  1292.  *
  1293.  * BitmapConversionModel
  1294.  *
  1295.  ***********************************************************************/
  1296.  
  1297. enum{    XmMATCH_DEPTH, XmDYNAMIC_DEPTH } ;
  1298.  
  1299.  
  1300. /************************************************************************
  1301.  *  PrintShell defines
  1302.  ************************************************************************/
  1303.  
  1304. enum { XmPDM_NOTIFY_FAIL, XmPDM_NOTIFY_SUCCESS } ;
  1305.  
  1306.  
  1307. /* This one cannot be put at the beginning because it needs 
  1308.    XmStringTable */
  1309. #include <Xm/TxtPropCv.h>
  1310.  
  1311.  
  1312. /********    BaseClass.c    ********/
  1313. typedef XtPointer    (*XmResourceBaseProc)( Widget, XtPointer) ;
  1314.  
  1315. typedef struct _XmSecondaryResourceDataRec{
  1316.     XmResourceBaseProc    base_proc;
  1317.     XtPointer        client_data;
  1318.     String        name;
  1319.     String        res_class;
  1320.     XtResourceList    resources;
  1321.     Cardinal        num_resources;
  1322. }XmSecondaryResourceDataRec, *XmSecondaryResourceData;
  1323.  
  1324. /********    Public Function Declarations for BaseClass.c    ********/
  1325.  
  1326. extern Cardinal XmGetSecondaryResourceData( 
  1327.                         WidgetClass w_class,
  1328.                         XmSecondaryResourceData **secondaryDataRtn) ;
  1329.  
  1330. /********    End Public Function Declarations    ********/
  1331.  
  1332. /********    Public Function Declarations for ImageCache.c    ********/
  1333.  
  1334. extern Boolean XmInstallImage( 
  1335.                         XImage *image,
  1336.                         char *image_name) ;
  1337. extern Boolean XmUninstallImage( 
  1338.                         XImage *image) ;
  1339. extern Pixmap XmGetPixmap( 
  1340.                         Screen *screen,
  1341.                         char *image_name,
  1342.                         Pixel foreground,
  1343.                         Pixel background) ;
  1344. extern Pixmap XmGetPixmapByDepth( 
  1345.                         Screen *screen,
  1346.                         char *image_name,
  1347.                         Pixel foreground,
  1348.                         Pixel background,
  1349.             int depth) ;
  1350. extern Boolean XmDestroyPixmap( 
  1351.                         Screen *screen,
  1352.                         Pixmap pixmap) ;
  1353.  
  1354. /********    End Public Function Declarations    ********/
  1355.  
  1356. /********    Public Function Declarations for Resolve.c    ********/
  1357. /*-- XmeResolvePartOffsets is defined in XmP.h.
  1358.      These also belong there but for source compatibility, we let 
  1359.      them here --- */
  1360.  
  1361. typedef long XmOffset;
  1362. typedef XmOffset *XmOffsetPtr;
  1363.  
  1364.  
  1365.  
  1366. extern void XmResolveAllPartOffsets( 
  1367.                         WidgetClass w_class,
  1368.                         XmOffsetPtr *offset,
  1369.                         XmOffsetPtr *constraint_offset) ;
  1370. extern void XmResolvePartOffsets( 
  1371.                         WidgetClass w_class,
  1372.                         XmOffsetPtr *offset) ;
  1373.  
  1374. /********    End Public Function Declarations    ********/
  1375.  
  1376.  
  1377.  
  1378. /********    Public Function Declarations for Xm.c    ********/
  1379.  
  1380.  
  1381. extern void XmUpdateDisplay( 
  1382.                         Widget w) ;
  1383. extern Widget XmObjectAtPoint(
  1384.             Widget wid,
  1385.             Position x,
  1386.             Position y ) ;
  1387.  
  1388. extern Boolean XmWidgetGetBaselines(
  1389.                         Widget wid,
  1390.                         Dimension **baselines,
  1391.                         int *line_count);
  1392. extern Boolean XmWidgetGetDisplayRect(
  1393.                         Widget wid,
  1394.                         XRectangle *displayrect);
  1395.  
  1396. /********    End Public Function Declarations    ********/
  1397.  
  1398.  
  1399.  
  1400. /********    Primitive.c    ********/
  1401.  
  1402. /********    Public Function Declarations for Primitive.c    ********/
  1403.  
  1404. /********    End Public Function Declarations    ********/
  1405.  
  1406. /********    Public Function Declarations for ResConvert.c    ********/
  1407.  
  1408. extern void XmCvtStringToUnitType( 
  1409.                         XrmValuePtr args,
  1410.                         Cardinal *num_args,
  1411.                         XrmValue *from_val,
  1412.                         XrmValue *to_val) ;
  1413. extern char * XmRegisterSegmentEncoding( 
  1414.                         char *fontlist_tag,
  1415.                         char *ct_encoding) ;
  1416. extern char * XmMapSegmentEncoding( 
  1417.                         char *fontlist_tag) ;
  1418. extern XmString XmCvtCTToXmString( 
  1419.                         char *text) ;
  1420. extern Boolean XmCvtTextToXmString( 
  1421.                         Display *display,
  1422.                         XrmValuePtr args,
  1423.                         Cardinal *num_args,
  1424.                         XrmValue *from_val,
  1425.                         XrmValue *to_val,
  1426.                         XtPointer *converter_data) ;
  1427. extern char * XmCvtXmStringToCT( 
  1428.                         XmString string) ;
  1429. extern Boolean XmCvtXmStringToText( 
  1430.                         Display *display,
  1431.                         XrmValuePtr args,
  1432.                         Cardinal *num_args,
  1433.                         XrmValue *from_val,
  1434.                         XrmValue *to_val,
  1435.                         XtPointer *converter_data) ;
  1436.  
  1437. /********    End Public Function Declarations    ********/
  1438.  
  1439. /********    Public Function Declarations for ResInd.c    ********/
  1440.  
  1441. extern int XmConvertStringToUnits(
  1442.                   Screen *screen, 
  1443.                   String spec,
  1444.                   int orientation,
  1445.                   int to_type,
  1446.                   XtEnum *parse_error);
  1447. extern int XmConvertUnits( 
  1448.                         Widget widget,
  1449.                         int dimension,
  1450.                         register int from_type,
  1451.                         register int from_val,
  1452.                         register int to_type) ;
  1453. extern int XmCvtToHorizontalPixels( 
  1454.                         Screen *screen,
  1455.                         register int from_val,
  1456.                         register int from_type) ;
  1457. extern int XmCvtToVerticalPixels( 
  1458.                         Screen *screen,
  1459.                         register int from_val,
  1460.                         register int from_type) ;
  1461. extern int XmCvtFromHorizontalPixels( 
  1462.                         Screen *screen,
  1463.                         register int from_val,
  1464.                         register int to_type) ;
  1465. extern int XmCvtFromVerticalPixels( 
  1466.                         Screen *screen,
  1467.                         register int from_val,
  1468.                         register int to_type) ;
  1469. extern void XmSetFontUnits( 
  1470.                         Display *display,
  1471.                         int h_value,
  1472.                         int v_value) ;
  1473. extern void XmSetFontUnit( 
  1474.                         Display *display,
  1475.                         int value) ;
  1476.  
  1477. /********    End Public Function Declarations    ********/
  1478.  
  1479. /********    Public Function Declarations for MenuUtil.c    ********/
  1480.  
  1481. extern void XmSetMenuCursor( 
  1482.                         Display *display,
  1483.                         Cursor cursorId) ;
  1484. extern Cursor XmGetMenuCursor( 
  1485.                         Display *display) ;
  1486.  
  1487. /********    End Public Function Declarations    ********/
  1488.  
  1489. /********    Public Function Declarations for Simple.c    ********/
  1490.  
  1491. extern Widget XmCreateSimpleMenuBar( 
  1492.                         Widget parent,
  1493.                         String name,
  1494.                         ArgList args,
  1495.                         Cardinal arg_count) ;
  1496. extern Widget XmCreateSimplePopupMenu( 
  1497.                         Widget parent,
  1498.                         String name,
  1499.                         ArgList args,
  1500.                         Cardinal arg_count) ;
  1501. extern Widget XmCreateSimplePulldownMenu( 
  1502.                         Widget parent,
  1503.                         String name,
  1504.                         ArgList args,
  1505.                         Cardinal arg_count) ;
  1506. extern Widget XmCreateSimpleOptionMenu( 
  1507.                         Widget parent,
  1508.                         String name,
  1509.                         ArgList args,
  1510.                         Cardinal arg_count) ;
  1511. extern Widget XmCreateSimpleRadioBox( 
  1512.                         Widget parent,
  1513.                         String name,
  1514.                         ArgList args,
  1515.                         Cardinal arg_count) ;
  1516. extern Widget XmCreateSimpleCheckBox( 
  1517.                         Widget parent,
  1518.                         String name,
  1519.                         ArgList args,
  1520.                         Cardinal arg_count) ;
  1521.  
  1522. /********    End Public Function Declarations    ********/
  1523.  
  1524. /********    Public Function Declarations for VaSimple.c   ********/
  1525. extern Widget XmVaCreateSimpleMenuBar( 
  1526.             Widget parent,
  1527.             String name,
  1528.             ...) ;
  1529. extern Widget XmVaCreateSimplePopupMenu(
  1530.             Widget parent,
  1531.             String name,
  1532.             XtCallbackProc callback,
  1533.             ...) ;
  1534. extern Widget XmVaCreateSimplePulldownMenu( 
  1535.             Widget parent,
  1536.             String name,
  1537.             int post_from_button,
  1538.             XtCallbackProc callback,
  1539.             ...) ;
  1540. extern Widget XmVaCreateSimpleOptionMenu(
  1541.             Widget parent,
  1542.             String name,
  1543.                         XmString option_label,
  1544.                         KeySym option_mnemonic,
  1545.                         int button_set,
  1546.                         XtCallbackProc callback,
  1547.             ...) ;
  1548. extern Widget XmVaCreateSimpleRadioBox( 
  1549.             Widget parent,
  1550.             String name,
  1551.             int button_set,
  1552.             XtCallbackProc callback,
  1553.             ...) ;
  1554. extern Widget XmVaCreateSimpleCheckBox( 
  1555.             Widget parent,
  1556.             String name,
  1557.             XtCallbackProc callback,
  1558.             ...) ;
  1559. /********    End Public Function Declarations    ********/
  1560.  
  1561. /********    Public Function Declarations for TrackLoc.c    ********/
  1562.  
  1563. extern Widget XmTrackingEvent( 
  1564.                         Widget widget,
  1565.                         Cursor cursor,
  1566. #if NeedWidePrototypes
  1567.                         int confineTo,
  1568. #else
  1569.                         Boolean confineTo,
  1570. #endif /* NeedWidePrototypes */
  1571.                         XEvent *pev) ;
  1572. extern Widget XmTrackingLocate( 
  1573.                         Widget widget,
  1574.                         Cursor cursor,
  1575. #if NeedWidePrototypes
  1576.                         int confineTo) ;
  1577. #else
  1578.                         Boolean confineTo) ;
  1579. #endif /* NeedWidePrototypes */
  1580.  
  1581. /********    End Public Function Declarations    ********/
  1582.  
  1583. /********    Visual.c    ********/
  1584. typedef void (*XmColorProc) (XColor *bg_color, XColor *fg_color,
  1585.     XColor *sel_color, XColor *ts_color, XColor *bs_color);
  1586.  
  1587. /********    Public Function Declarations for Visual.c    ********/
  1588.  
  1589. extern XmColorProc XmSetColorCalculation( 
  1590.                         XmColorProc proc) ;
  1591. extern XmColorProc XmGetColorCalculation( void ) ;
  1592. extern void XmGetColors( 
  1593.                         Screen *screen,
  1594.                         Colormap color_map,
  1595.                         Pixel background,
  1596.                         Pixel *foreground_ret,
  1597.                         Pixel *top_shadow_ret,
  1598.                         Pixel *bottom_shadow_ret,
  1599.                         Pixel *select_ret) ;
  1600. extern void XmChangeColor(
  1601.                         Widget widget,
  1602.                         Pixel background) ;
  1603.  
  1604. /********    End Public Function Declarations    ********/
  1605.  
  1606. /********    Public Function Declarations for XmString.c    ********/
  1607.  
  1608. extern XmString XmStringCreate( 
  1609.                         char *text,
  1610.                         XmStringCharSet charset) ;
  1611. extern XmString XmStringCreateSimple( 
  1612.                         char *text) ;
  1613. extern XmString XmStringCreateLocalized( 
  1614.                         String text) ;
  1615. extern XmString XmStringDirectionCreate( 
  1616. #if NeedWidePrototypes
  1617.                         int direction) ;
  1618. #else
  1619.                         XmStringDirection direction) ;
  1620. #endif /* NeedWidePrototypes */
  1621. extern XmString XmStringSeparatorCreate( void ) ;
  1622. extern XmString XmStringSegmentCreate( 
  1623.                         char *text,
  1624.                         XmStringCharSet charset,
  1625. #if NeedWidePrototypes
  1626.                         int direction,
  1627.                         int separator) ;
  1628. #else
  1629.                         XmStringDirection direction,
  1630.                         Boolean separator) ;
  1631. #endif /* NeedWidePrototypes */
  1632. extern XmString XmStringLtoRCreate( 
  1633.                         char *text,
  1634.                         XmStringCharSet charset) ;
  1635. extern XmString XmStringCreateLtoR( 
  1636.                         char *text,
  1637.                         XmStringCharSet charset) ;
  1638. extern Boolean XmStringInitContext( 
  1639.                         XmStringContext *context,
  1640.                         XmString string) ;
  1641. extern void XmStringFreeContext( 
  1642.                         XmStringContext context) ;
  1643. extern XmStringComponentType XmStringGetNextComponent( 
  1644.                         XmStringContext context,
  1645.                         char **text,
  1646.                         XmStringCharSet *charset,
  1647.                         XmStringDirection *direction,
  1648.                         XmStringComponentType *unknown_tag,
  1649.                         unsigned short *unknown_length,
  1650.                         unsigned char **unknown_value) ;
  1651. extern XmStringComponentType XmStringPeekNextComponent( 
  1652.                         XmStringContext context) ;
  1653. extern Boolean XmStringGetNextSegment( 
  1654.                         XmStringContext context,
  1655.                         char **text,
  1656.                         XmStringCharSet *charset,
  1657.                         XmStringDirection *direction,
  1658.                         Boolean *separator) ;
  1659. extern Boolean XmStringGetLtoR( 
  1660.                         XmString string,
  1661.                         XmStringCharSet charset,
  1662.                         char **text) ;
  1663. extern XmFontListEntry XmFontListEntryCreate( 
  1664.                         char *tag,
  1665.                         XmFontType type,
  1666.                         XtPointer font) ;
  1667. extern XmFontListEntry XmFontListEntryCreate_r(
  1668.                         char *tag,
  1669.                         XmFontType type,
  1670.                         XtPointer font,
  1671.                         Widget wid) ;
  1672. extern void XmFontListEntryFree( 
  1673.                         XmFontListEntry *entry) ;
  1674. extern XtPointer XmFontListEntryGetFont( 
  1675.                         XmFontListEntry entry,
  1676.                         XmFontType *typeReturn) ;
  1677. extern char * XmFontListEntryGetTag( 
  1678.                         XmFontListEntry entry) ;
  1679. extern XmFontList XmFontListAppendEntry( 
  1680.                         XmFontList old,
  1681.                         XmFontListEntry entry) ;
  1682. extern XmFontListEntry XmFontListNextEntry( 
  1683.                         XmFontContext context) ;
  1684. extern XmFontList XmFontListRemoveEntry( 
  1685.                         XmFontList old,
  1686.                         XmFontListEntry entry) ;
  1687. extern XmFontListEntry XmFontListEntryLoad( 
  1688.                         Display *display,
  1689.                         char *fontName,
  1690.                         XmFontType type,
  1691.                         char *tag) ;
  1692. extern XmFontList XmFontListCreate( 
  1693.                         XFontStruct *font,
  1694.                         XmStringCharSet charset) ;
  1695. extern XmFontList XmFontListCreate_r(
  1696.                         XFontStruct *font,
  1697.                         XmStringCharSet charset,
  1698.                         Widget wid) ;
  1699. extern XmFontList XmStringCreateFontList( 
  1700.                         XFontStruct *font,
  1701.                         XmStringCharSet charset) ;
  1702. extern XmFontList XmStringCreateFontList_r(
  1703.                         XFontStruct *font,
  1704.                         XmStringCharSet charset,
  1705.                         Widget wid) ;
  1706. extern void XmFontListFree( 
  1707.                         XmFontList fontlist) ;
  1708. extern XmFontList XmFontListAdd( 
  1709.                         XmFontList old,
  1710.                         XFontStruct *font,
  1711.                         XmStringCharSet charset) ;
  1712. extern XmFontList XmFontListCopy( 
  1713.                         XmFontList fontlist) ;
  1714. extern Boolean XmFontListInitFontContext( 
  1715.                         XmFontContext *context,
  1716.                         XmFontList fontlist) ;
  1717. extern Boolean XmFontListGetNextFont( 
  1718.                         XmFontContext context,
  1719.                         XmStringCharSet *charset,
  1720.                         XFontStruct **font) ;
  1721. extern void XmFontListFreeFontContext( 
  1722.                         XmFontContext context) ;
  1723. extern XmString XmStringConcat( 
  1724.                         XmString a,
  1725.                         XmString b) ;
  1726. extern XmString XmStringConcatAndFree(
  1727.             XmString a, 
  1728.             XmString b) ;
  1729. extern XmString XmStringNConcat( 
  1730.                         XmString first,
  1731.                         XmString second,
  1732.                         int n) ;
  1733. extern XmString XmStringCopy( 
  1734.                         XmString string) ;
  1735. extern XmString XmStringNCopy( 
  1736.                         XmString str,
  1737.                         int n) ;
  1738. extern Boolean XmStringByteCompare( 
  1739.                         XmString a1,
  1740.                         XmString b1) ;
  1741. extern Boolean XmStringCompare( 
  1742.                         XmString a,
  1743.                         XmString b) ;
  1744. extern int XmStringLength( 
  1745.                         XmString string) ;
  1746. extern Boolean XmStringEmpty( 
  1747.                         XmString string) ;
  1748. extern Boolean XmStringIsVoid(XmString string); 
  1749. extern Boolean XmStringHasSubstring( 
  1750.                         XmString string,
  1751.                         XmString substring) ;
  1752. extern void XmStringFree( 
  1753.                         XmString string) ;
  1754. extern Dimension XmStringBaseline( 
  1755.                         XmFontList fontlist,
  1756.                         XmString string) ;
  1757. extern Dimension XmStringWidth( 
  1758.                         XmFontList fontlist,
  1759.                         XmString string) ;
  1760. extern Dimension XmStringHeight( 
  1761.                         XmFontList fontlist,
  1762.                         XmString string) ;
  1763. extern void XmStringExtent( 
  1764.                         XmFontList fontlist,
  1765.                         XmString string,
  1766.                         Dimension *width,
  1767.                         Dimension *height) ;
  1768. extern int XmStringLineCount( 
  1769.                         XmString string) ;
  1770. extern void XmStringDraw( 
  1771.                         Display *d,
  1772.                         Window w,
  1773.                         XmFontList fontlist,
  1774.                         XmString string,
  1775.                         GC gc,
  1776. #if NeedWidePrototypes
  1777.                         int x,
  1778.                         int y,
  1779.                         int width,
  1780.                         unsigned int align,
  1781.                         unsigned int lay_dir,
  1782. #else
  1783.                         Position x,
  1784.                         Position y,
  1785.                         Dimension width,
  1786.                         unsigned char align,
  1787.                         unsigned char lay_dir,
  1788. #endif /* NeedWidePrototypes */
  1789.                         XRectangle *clip) ;
  1790. extern void XmStringDrawImage( 
  1791.                         Display *d,
  1792.                         Window w,
  1793.                         XmFontList fontlist,
  1794.                         XmString string,
  1795.                         GC gc,
  1796. #if NeedWidePrototypes
  1797.                         int x,
  1798.                         int y,
  1799.                         int width,
  1800.                         unsigned int align,
  1801.                         unsigned int lay_dir,
  1802. #else
  1803.                         Position x,
  1804.                         Position y,
  1805.                         Dimension width,
  1806.                         unsigned char align,
  1807.                         unsigned char lay_dir,
  1808. #endif /* NeedWidePrototypes */
  1809.                         XRectangle *clip) ;
  1810. extern void XmStringDrawUnderline( 
  1811.                         Display *d,
  1812.                         Window w,
  1813.                         XmFontList fntlst,
  1814.                         XmString str,
  1815.                         GC gc,
  1816. #if NeedWidePrototypes
  1817.                         int x,
  1818.                         int y,
  1819.                         int width,
  1820.                         unsigned int align,
  1821.                         unsigned int lay_dir,
  1822. #else
  1823.                         Position x,
  1824.                         Position y,
  1825.                         Dimension width,
  1826.                         unsigned char align,
  1827.                         unsigned char lay_dir,
  1828. #endif /* NeedWidePrototypes */
  1829.                         XRectangle *clip,
  1830.                         XmString under) ;
  1831. extern unsigned int XmCvtXmStringToByteStream(
  1832.             XmString string,
  1833.                     unsigned char **prop_return);
  1834. extern XmString XmCvtByteStreamToXmString(
  1835.                     unsigned char *property);
  1836. extern unsigned int XmStringByteStreamLength(unsigned char *string);
  1837. extern XmStringComponentType XmStringPeekNextTriple(XmStringContext context);
  1838. extern XmStringComponentType XmStringGetNextTriple(XmStringContext context,
  1839.                            unsigned int *length,
  1840.                            XtPointer *value);
  1841. extern XmString XmStringComponentCreate(XmStringComponentType tag,
  1842.                     unsigned int length,
  1843.                     XtPointer value);
  1844. extern XtPointer XmStringUnparse(XmString string,
  1845.                  XmStringTag tag,
  1846.                  XmTextType tag_type,
  1847.                  XmTextType output_type,
  1848.                  XmParseTable parse_table,
  1849.                  Cardinal parse_count,
  1850.                  XmParseModel parse_model);
  1851. extern XmString XmStringParseText(XtPointer text,
  1852.                   XtPointer *text_end,
  1853.                   XmStringTag tag,
  1854.                   XmTextType type,
  1855.                   XmParseTable parse_table,
  1856.                   Cardinal parse_count,
  1857.                   XtPointer call_data);
  1858. extern Cardinal XmStringToXmStringTable(XmString string,
  1859.                     XmString break_comp,
  1860.                     XmStringTable *table);
  1861. extern XmString XmStringTableToXmString(XmStringTable table,
  1862.                     Cardinal count,
  1863.                     XmString break_component);
  1864. extern XtPointer *XmStringTableUnparse(XmStringTable table,
  1865.                        Cardinal count,
  1866.                        XmStringTag tag,
  1867.                        XmTextType tag_type,
  1868.                        XmTextType output_type,
  1869.                        XmParseTable parse,
  1870.                        Cardinal parse_count,
  1871.                        XmParseModel parse_model);
  1872. extern XmStringTable XmStringTableParseStringArray(XtPointer *strings,
  1873.                            Cardinal count,
  1874.                            XmStringTag tag,
  1875.                            XmTextType type,
  1876.                            XmParseTable parse,
  1877.                            Cardinal parse_count,
  1878.                            XtPointer call_data);
  1879.  
  1880. extern XmStringDirection XmDirectionToStringDirection(XmDirection dir);
  1881. extern XmDirection XmStringDirectionToDirection(XmStringDirection dir);
  1882.  
  1883. extern XmString XmStringGenerate(XtPointer   text,
  1884.                  XmStringTag tag,
  1885.                  XmTextType  type,
  1886.                  XmStringTag rendition);
  1887. extern XmString XmStringPutRendition(XmString string,
  1888.                      XmStringTag rendition); 
  1889.  
  1890. extern XmParseMapping XmParseMappingCreate(ArgList  arg_list,
  1891.                        Cardinal arg_count);
  1892. extern void XmParseMappingSetValues(XmParseMapping parse_mapping,
  1893.                     ArgList        arg_list,
  1894.                     Cardinal       arg_count);
  1895. extern void XmParseMappingGetValues(XmParseMapping parse_mapping,
  1896.                     ArgList        arg_list,
  1897.                     Cardinal       arg_count);
  1898. extern void XmParseMappingFree(XmParseMapping parse_mapping);
  1899. extern void XmParseTableFree(XmParseTable parse_table,
  1900.                  Cardinal     parse_count);
  1901.  
  1902. /********    End Public Function Declarations    ********/
  1903.  
  1904. /********    Public Function Declarations for XmTabList.c    ********/
  1905.  
  1906. extern XmTabList 
  1907.   XmStringTableProposeTablist(XmStringTable strings, 
  1908.                   Cardinal num_strings,
  1909.                   Widget widget,
  1910.                   float pad_value,
  1911.                   XmOffsetModel offset_model);
  1912. extern void XmTabSetValue(XmTab tab, float value);
  1913. extern float 
  1914.   XmTabGetValues(XmTab tab, 
  1915.          unsigned char *units, 
  1916.          XmOffsetModel *offset, 
  1917.          unsigned char *alignment, 
  1918.          char **decimal);
  1919. extern void XmTabFree(XmTab tab);
  1920. extern XmTab XmTabCreate(float value, 
  1921.              unsigned char units, 
  1922.              XmOffsetModel offset_model, 
  1923.              unsigned char alignment, 
  1924.              char *decimal);
  1925. extern XmTabList 
  1926.   XmTabListRemoveTabs(XmTabList oldlist, 
  1927.               Cardinal *position_list, 
  1928.               Cardinal position_count);
  1929. extern XmTabList 
  1930.   XmTabListReplacePositions(XmTabList oldlist, 
  1931.                 Cardinal *position_list, 
  1932.                 XmTab *tabs, 
  1933.                 Cardinal tab_count);
  1934. extern XmTab XmTabListGetTab(XmTabList tablist, Cardinal position);
  1935. extern Cardinal XmTabListTabCount(XmTabList tablist);
  1936. extern XmTabList XmTabListCopy(XmTabList tablist, int offset, Cardinal count);
  1937. extern void XmTabListFree(XmTabList tablist);
  1938. extern XmTabList XmTabListInsertTabs(XmTabList oldlist,
  1939.                      XmTab *tabs, 
  1940.                      Cardinal tab_count, 
  1941.                      int position);
  1942. /********    End Public Function Declarations    ********/
  1943.  
  1944. /********    Public Function Declarations for XmRenderTable.c    ********/
  1945.  
  1946. extern XmRenderTable XmRenderTableCvtFromProp(Widget, char *prop, unsigned int len);
  1947. extern unsigned int XmRenderTableCvtToProp(Widget, XmRenderTable table, char **prop_return);
  1948. extern void XmRenditionUpdate(XmRendition rendition, ArgList arglist, Cardinal argcount);
  1949. extern void XmRenditionRetrieve(XmRendition rendition, 
  1950.                 ArgList arglist,
  1951.                 Cardinal argcount);
  1952. extern void XmRenditionFree(XmRendition rendition);
  1953. extern XmRendition XmRenditionCreate(Widget widget,
  1954.                      XmStringTag tag,
  1955.                      ArgList arglist,
  1956.                      Cardinal argcount);
  1957. extern XmRendition 
  1958.   *XmRenderTableGetRenditions(XmRenderTable table, 
  1959.                   XmStringTag *tags,
  1960.                   Cardinal tag_count);
  1961. extern XmRendition XmRenderTableGetRendition(XmRenderTable table,
  1962.                          XmStringTag tag);
  1963. extern int XmRenderTableGetTags(XmRenderTable table,
  1964.                 XmStringTag **tag_list);
  1965. extern void XmRenderTableFree(XmRenderTable table);
  1966. extern XmRenderTable XmRenderTableCopy(XmRenderTable table,
  1967.                        XmStringTag *tags, 
  1968.                        int tag_count);
  1969. extern XmRenderTable 
  1970.   XmRenderTableRemoveRenditions(XmRenderTable oldtable,
  1971.                 XmStringTag *tags, 
  1972.                 int tag_count);
  1973. extern XmRenderTable 
  1974.   XmRenderTableAddRenditions(XmRenderTable oldtable, 
  1975.                  XmRendition *renditions, 
  1976.                  Cardinal rendition_count, 
  1977.                  XmMergeMode merge_mode);
  1978.  
  1979. /********    End Public Function Declarations    ********/
  1980.  
  1981. /********    Public Function Declarations for Dest.c    ********/
  1982.  
  1983. extern Widget XmGetDestination( 
  1984.                         Display *display) ;
  1985.  
  1986. /********    End Public Function Declarations    ********/
  1987.  
  1988. /********    Public Function Declarations for Traversal.c    ********/
  1989.  
  1990. extern Boolean XmIsTraversable( 
  1991.                         Widget wid) ;
  1992. extern XmVisibility XmGetVisibility( 
  1993.                         Widget wid) ;
  1994. extern Widget XmGetTabGroup( 
  1995.                         Widget wid) ;
  1996. extern Widget XmGetFocusWidget( 
  1997.                         Widget wid) ;
  1998. extern Boolean XmProcessTraversal( 
  1999.                         Widget w,
  2000.                         XmTraversalDirection dir) ;
  2001. extern void XmAddTabGroup( 
  2002.                         Widget tabGroup) ;
  2003. extern void XmRemoveTabGroup( 
  2004.                         Widget w) ;
  2005.  
  2006. /********    End Public Function Declarations    ********/
  2007.  
  2008. /********        ********/
  2009.  
  2010. #ifdef __cplusplus
  2011. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  2012. #endif
  2013.  
  2014. /*
  2015.  * The following includes are for source compatibility.  They might be
  2016.  *    removed at some future time.
  2017.  */
  2018. #include <Xm/VendorS.h>
  2019. #include <Xm/XmIm.h>
  2020.  
  2021. #define XmINDICATOR_3D_BOX        0x01
  2022. #define XmINDICATOR_FLAT_BOX        0x02
  2023. #define XmINDICATOR_CHECK_GLYPH        0x10
  2024. #define XmINDICATOR_CROSS_GLYPH        0x20
  2025.  
  2026. enum {
  2027.   XmINDICATOR_NONE      = 0, 
  2028.   XmINDICATOR_FILL      = 1,    /* Treated as _BOX or _CHECK_BOX */
  2029.   XmINDICATOR_BOX    = 255,    /* Treated as XmINDICATOR_3D_BOX */
  2030.   XmINDICATOR_CHECK     = XmINDICATOR_CHECK_GLYPH,
  2031.   XmINDICATOR_CHECK_BOX = XmINDICATOR_CHECK_GLYPH + XmINDICATOR_3D_BOX,
  2032.   XmINDICATOR_CROSS     = XmINDICATOR_CROSS_GLYPH,
  2033.   XmINDICATOR_CROSS_BOX = XmINDICATOR_CROSS_GLYPH + XmINDICATOR_3D_BOX
  2034. };
  2035.  
  2036. enum { XmUNSET, XmSET, XmINDETERMINATE };
  2037. enum { XmTOGGLE_BOOLEAN, XmTOGGLE_INDETERMINATE };
  2038. typedef unsigned char XmToggleButtonState;
  2039.  
  2040. /* SGI comment, these symbols have moved from a private file (TextStrsoP.h) to
  2041.  * this one (public), this means that some applications may hit compile time
  2042.  * errors due to redefinitions of the symbols. This is exacerbated by the fact
  2043.  * that some (ie. EditDone) don't have the Xm prefix. For this reason we have
  2044.  * elected to hide them again from applications. If you really need them or
  2045.  * you were using them by the old means, then defined _SGI_OSF_PUBLIC_SYMBOLS.
  2046.  * --- offer */
  2047. #if defined(_SGIBUGFIX) && defined(_SGI_OSF_PUBLIC_SYMBOLS)
  2048. /* Shared text enum. */
  2049. typedef enum { EditDone, EditError, EditReject } XmTextStatus;
  2050. #endif /* _SGIBUGFIX && _SGI_OSF_PUBLIC_SYMBOLS */
  2051.  
  2052. /* XmDisplay.XmNdefaultButtonEmphasis enum */
  2053. enum { XmEXTERNAL_HIGHLIGHT, XmINTERNAL_HIGHLIGHT };
  2054.  
  2055. /* new for XmString */
  2056. #define _MOTIF_DEFAULT_LOCALE "_MOTIF_DEFAULT_LOCALE"
  2057.  
  2058. enum { XmPATH_MODE_FULL, XmPATH_MODE_RELATIVE };
  2059. enum { XmFILTER_NONE, XmFILTER_HIDDEN_FILES} ;
  2060.   
  2061.  
  2062. #endif /* _Xm_h */
  2063.  /* DON'T ADD STUFF AFTER THIS #endif */
  2064.